1. Field of the Invention
The present invention relates in general to the field of multiplexers used in integrated circuits. More specifically, the method and apparatus of the present invention provides a fast, highly-scalable and area-efficient implementation of a high-fanin multiplexer for use in integrated circuits.
2. Description of the Related Art
The multiplexer is one of the most common circuits implemented in modern integrated circuits. In its most basic form, one of two input signals is selected as an output signal based on the value of a control signal. In more complex multiplexers, a plurality of control signals turn transfer gates on and off in accordance with predetermined rules to enable various data signals to be generated as outputs. Although it is possible for a multiplexer to accept a large number of input signals, it is generally difficult to scale a multiplexer and, therefore, there are practical limits to the number in inputs that can be accepted.
Multiplexers that accept a large number of inputs are often referred to as “high-fanin” multiplexers. There is often a need to implement high-fanin multiplexers in complex integrated circuits. One of the problems encountered with high-fanin multiplexers, however, is a significant increase in size and a significant decrease in speed as the number of inputs increases. The speed and area issues increase at a rate that is more than linear with the number of inputs. Most designs, therefore, limit the implementation to static multiplexers of six inputs or less. These smaller fanin multiplexers are then connected in series to provide a multiplexer module with the desired number of inputs.
It would be desirable, however, to have a high-fanin multiplexer that provides a larger number of inputs with a speed and area advantage over comparable multiplexers that are implemented by connecting a plurality of smaller fanin multiplexers in series. Such a high-fanin multiplexer is provided by the method and apparatus of the present invention, as described in more detail below.